﻿using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using UCL.Powersource.Analysis;

namespace UCL.Powersource.Statistics.CodeIndex
{
    [Export(typeof(IStatistic))]
    [DataContract(IsReference = true)]
    public class RFCStatisticMaximum : CodeIndexStatistic
    {
        public static Guid RFCStatisitcMaximum_Guid = new Guid("77C31A8E-87DF-407F-AB33-4CE14F4355C0");

        public RFCStatisticMaximum()
            : base(StatisticTypeValue.Maximum)
        {
            _calculator = CalculatorFactory.getRFCCalculator();
        }

        public override string Label
        {
            get { return "Maximum value for RFC"; }
        }

        public override string Description
        {
            get
            {
                return
                    "Statistic calculating the Maximum number of methods that " +
                    "can be executed by a class in the project in response to " +
                    "a message/invokation received by an object of that class";
            }
        }

        public override string Name
        {
            get { return "RFCStatisticMaximum"; }
        }

        public override Guid Statistic_Guid
        {
            get { return RFCStatisitcMaximum_Guid; }
        }

        protected override StatisticTypeValue ValueType
        {
            get { return StatisticTypeValue.Maximum; }
        }

        protected override StatisticDefinition StatisticDef
        {
            get { return StatisticDefinition.RFC; }
        }
    }
}
